FIG. 1 illustrates an example of a configuration of a computer system called a virtual machine. Known as one example of the virtual machine is a system in which hardware such as a CPU (Central Processing Unit) and a memory is installed with a computer program called a virtual machine monitor. In the virtual machine, one guest OS or a plurality of guest OSs runs on the virtual machine monitor. Further, an application program runs on the guest OS. The virtual machine is also called a virtual computer, a VM (Virtual Machine), etc.
The virtual machine monitor is a computer program that is also called a VMM (Virtual Machine Monitor) and Hypervisor. The virtual machine monitor controls the whole virtual machine. For example, the virtual machine monitor executes, when the plurality of guest OSs operates, a dispatch process of the guest OS, i.e., a process of determining the guest OS to which the CPU is allocated and starting up the guest OS. Further, the virtual machine monitor performs emulation of a privilege instruction executed by each guest OS. For instance, when the guest OS makes a request for executing the privilege instruction in a user status, the virtual machine monitor executes a process of intercepting the privilege instruction requested for the execution by exception handling and emulating the execution-requested privilege instruction.
Moreover, the virtual machine monitor is started up when the virtual machine is booted, and the virtual machine monitor performs the processes such as starting up and stopping the guest OS and managing and controlling the virtual machine. There is, however, a case in which the virtual machine is managed and controlled via a special guest OS called a host OS. Further, there is a case in which the management and the control of the virtual machine are performed as a function called service control by a computer program different from the virtual machine monitor.
Still further, the virtual machine monitor performs an I/O (input/output) process with a physical device in response to an I/O request given from the guest OS. The I/O process with the physical device is also called a real I/O process. For example, each guest OS requests, through an interface called a Hypervisor call, the virtual machine monitor to execute the I/O process. Then, the virtual machine monitor accesses, via a device driver, the physical device such as a display, an external storage device and a LAN (Local Area Network). Known also is, however, a configuration in which the guest OS called a driver OS (driver domain) dedicated to the execution of the real I/O process or the host OS described above executes the real I/O process.
On the other hand, the guest OS can be exemplified as the OS having no real I/O on the virtual machine. The guest OS provides the application program with virtual resources on the hardware via the virtual machine monitor. Accordingly, in terms of a relation with the application program, the guest OS can be considered to be the normal OS. It should be noted that the guest OS, the host OS and the driver OS on the virtual machine monitor are deemed to be different computers and are therefore each called the virtual machine as the case may be.
In the virtual machine, the application program is executed on the guest OS, while the guest OS is executed on the virtual machine monitor. And, when the application program requests the guest OS to execute the I/O process, the guest OS issues an I/O instruction. The thus-issued I/O instruction is, e.g., intercepted by the virtual machine monitor, and the I/O process with the physical device is performed by the driver of the virtual machine monitor, the guest OS or the host OS. The guest OS, however, hands over the I/O instruction to the virtual machine monitor by issuing the Hypervisor call as the case may be. In any case, the operation of the virtual machine, which ranges from the request for the I/O process of the application program to the I/O process with the physical device, is complicated.
As described above, the virtual machine has a complicated path extending from the I/O process request to the I/O to the actual physical device, and besides the guest OS receives the virtual interrupt via the virtual machine monitor and measures the time. Accordingly, such a problem arises that in the virtual machine, the guest OS is disabled from acquiring performance information such as execution time of the process which involves the I/O process with high accuracy.
[Documents of Related Arts]                [Patent document 1] Japanese Laid-Open Patent Publication No. 2008-225655        [Patent document 2] Japanese Laid-Open Patent Publication No. 2006-059052        